package com.kfgj.hkp.common.user.business;

import com.kfgj.hkp.common.user.entity.BaseUserEntity;
import com.kfgj.hkp.manager.IManager;

/**
 * @description 用户基础管理接口
 * @auth liwensihan
 * @date 2018/6/30 11:48
 * @version 1.0
 * @return
 */
public interface IBaseUserManager<T extends BaseUserEntity> extends IManager<T> {
    /**
     * 通过AuthKey获取用户信息
     * @param authKey
     * @return
     */
    T findUserByAuthKey(String authKey);

    /**
     * 通过用户编码查找用户
     * @param userCode
     * @return
     */
    T findUserByUserCode(String userCode);

    /**
     * 获取用户登陆超时的秒
     * @return
     */
    long getTokenExpire();


    /**
     * 更新用户登录授权码超时时间
     * @param expire
     */
    void updateAuthKeyExpire(String authKey, long expire);

    /**
     * 删除当前登陆用户的authKey
     * @param authKey
     */
    void deleteUserLoginAuthKey(String authKey);

    /**
     * 保存登录授权的authKey
     * @param authKey
     * @param userCode
     */
    void saveAuthKey(String authKey, String userCode);
}
